/* ------------------------2021-08-26 封装uni-app请求----------------------------- */
import config from './config.js'

function request(params, method) {
	let token = uni.getStorageSync('token') || ''
	let tenantId = '000000'
	return new Promise(function(resolve, reject) {
		// 根据具体业务需求更改必要参数
		if (!config.baseUrl) {
			console.log('config.js 中参数配置不全')
			reject('config.js 中参数配置不全')
			return
		}
		let that = this
		uni.request({
			url: config.baseUrl + params.url,
			data: params.data,
			method: method,
			header: {
				'Authorization': config.Authorization,
				'Blade-Auth': token,
				'Tenant-Id': tenantId,
				'Content-Type': 'application/json;charset=UTF-8',
				...params.header
			},
			timeout: config.reqTimeOut,
			success(res) {
				// 成功回调
				if (res.statusCode === 200) {
					// if(res.error_code === 400){
					// 	resolve(res.data)
					// 	return
					// }else if (res.data.data !== null && res.data.data.hasOwnProperty('token')) {
					// 	uni.setStorageSync('token', res.data.data.token)
					// 	resolve(res.data)
					// }
					// if(!res.data.data.token) {
					// 	uni.setStorageSync('token', res.data.data.token)
					// }
					resolve(res.data)
				} else {
					resolve(res.data)
					// uni.showModal({
					// 	title: '温馨提示',
					// 	content: '网络请求超时，请稍后再试！',
					// 	confirmColor: '#3178FF',
					// 	showCancel: false, // 是否显示取消按钮
					// 	success: function(res) {
					// 		if (res.confirm) {
					// 			uni.clearStorageSync() // 清空本地所有的缓存数据
					// 			uni.reLaunch({ url: '/pages/loginRegister/login/Login' })
					// 		}
					// 	}
					// })
				}
			},
			fail(e) {
				uni.showModal({
					title: '温馨提示',
					content: '网络请求超时，请稍后再试！',
					confirmColor: '#3178FF',
					showCancel: false, // 是否显示取消按钮
					success: function(res) {
						if (res.confirm) {
							uni.clearStorageSync() // 清空本地所有的缓存数据
							uni.reLaunch({ url: '/pages/views/loginRegister/login/Login' })
						}
					}
				})
			},
			complete(e) {
				// 无论成功或失败 只要请求完成的 回调
				// console.log('complete------------', e);
			}
		})
	})
};

export default {
	async get(params) {
		return await request(params, 'GET')
	},
	async post(params) {
		return await request(params, 'POST')
	}
}
